package com.ccp.dev.qbdms.model;

import java.math.BigDecimal;
import com.ccp.dev.core.basic.model.BaseModel;
import com.ccp.dev.qbdms.annotation.AutoConfirmRequired;
import com.ccp.dev.qbdms.expimp.annotation.ExpAnnotation;
import com.ccp.dev.qbdms.expimp.annotation.FlowSubject;
import com.ccp.dev.qbdms.expimp.annotation.ImpAnnotation;
import com.ccp.dev.qbdms.expimp.annotation.Record;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import javax.annotation.Resource;
import java.util.Date;

import static com.ccp.dev.qbdms.consts.ZhiLiangConst.getStatusStrByInt;

/**
 * 软件概况表 w_qbd_software_view
 *
 * @author 于金
 * @date 2020-07-06 09:53:26
 */
@ExpAnnotation(description = "软件概况")
@ImpAnnotation(description = "软件概况")
@FlowSubject(subjectName = "软件概况")
public class WQbdSoftwareView extends  BaseBusinessModel<WQbdSoftwareView>
{
	private static final long serialVersionUID = 1L;
    /**
     * 所属单位(用于数据纵向筛选）
     */
    private String belongdeptname;

    /**
     * 主键
    */
    private String  id;
    /**
     * 软件名称
    */
    @Record(value = "软件名称")
    @ExpAnnotation(description = "软件名称")
    @ImpAnnotation(description = "软件名称",isRequired = true)
    private String  softwareName;
    /**
     * 统计期
    */
    @ExpAnnotation(description = "统计期",format = "yyyy-MM")
    @ImpAnnotation(description = "统计期",isRequired = true ,format = "yyyy-MM")
    private Date  statisticalPeriod;
    /**
     * 所属型号
    */
    @ExpAnnotation(description = "所属型号")
    @ImpAnnotation(description = "所属型号",isRequired = true)
    private String  model;
    /**
     * 产品代号
    */
    @ExpAnnotation(description = "产品代号")
    @ImpAnnotation(description = "产品代号",isRequired = true)
    private String  productCode;
    /**
     * 软件研发阶段
    */
    @ExpAnnotation(description = "软件研发阶段")
    @ImpAnnotation(description = "软件研发阶段",isRequired = true,dicKey = "rjyzjd")
    private String  softwareDevelopmentStage;
    /**
     * 软件类型
    */
    @ExpAnnotation(description = "软件类型")
    @ImpAnnotation(description = "软件类型",isRequired = true,dicKey = "rjlx")
    private String  softwareType;
    /**
     * 关键等级
    */
    @ExpAnnotation(description = "关键等级")
    @ImpAnnotation(description = "关键等级",isRequired = true,dicKey = "gjdj")
    private String  criticalLevel;
    /**
     * 软件版本
    */
    @ExpAnnotation(description = "软件版本")
    @ImpAnnotation(description = "软件版本",isRequired = true)
    private String  softwareVersion;
    /**
     * 研制单位
    */
    @ExpAnnotation(description = "研制单位")
    @ImpAnnotation(description = "研制单位",isRequired = true)
    private String  developmentUnit;
    /**
     * 测评单位
    */
    @ExpAnnotation(description = "测评单位")
    @ImpAnnotation(description = "测评单位",isRequired = true)
    private String  evaluationUnit;
    /**
     * 测评项目类型
    */
    @ExpAnnotation(description = "测评项目类型")
    @ImpAnnotation(description = "测评项目类型",isRequired = true ,dicKey = "cpxmlx")
    private String  typesEvaluationItems;
    /**
     * 编程语言
    */
    @ExpAnnotation(description = "编程语言")
    @ImpAnnotation(description = "编程语言",isRequired = true)
    private String  programingLanguage;
    /**
     * 运行环境
    */
    @ExpAnnotation(description = "运行环境")
    @ImpAnnotation(description = "运行环境",isRequired = true)
    private String  operatingEnvironment;

    /**
     * 状态
    */
    private String  status;
    /**
     * 密级
    */
    private Long  dataprivacylevel;

    /**
     * 报送单位
     */
    @ExpAnnotation(description = "报送单位")
    private String filldept;

    @Override
    public String getBelongdeptname() {
        return belongdeptname;
    }

    @Override
    public void setBelongdeptname(String belongdeptname) {
        this.belongdeptname = belongdeptname;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getSoftwareName() {
        return softwareName;
    }

    public void setSoftwareName(String softwareName) {
        this.softwareName = softwareName;
    }

    public Date getStatisticalPeriod() {
        return statisticalPeriod;
    }

    public void setStatisticalPeriod(Date statisticalPeriod) {
        this.statisticalPeriod = statisticalPeriod;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getSoftwareDevelopmentStage() {
        return softwareDevelopmentStage;
    }

    public void setSoftwareDevelopmentStage(String softwareDevelopmentStage) {
        this.softwareDevelopmentStage = softwareDevelopmentStage;
    }

    public String getSoftwareType() {
        return softwareType;
    }

    public void setSoftwareType(String softwareType) {
        this.softwareType = softwareType;
    }

    public String getCriticalLevel() {
        return criticalLevel;
    }

    public void setCriticalLevel(String criticalLevel) {
        this.criticalLevel = criticalLevel;
    }

    public String getSoftwareVersion() {
        return softwareVersion;
    }

    public void setSoftwareVersion(String softwareVersion) {
        this.softwareVersion = softwareVersion;
    }

    public String getDevelopmentUnit() {
        return developmentUnit;
    }

    public void setDevelopmentUnit(String developmentUnit) {
        this.developmentUnit = developmentUnit;
    }

    public String getEvaluationUnit() {
        return evaluationUnit;
    }

    public void setEvaluationUnit(String evaluationUnit) {
        this.evaluationUnit = evaluationUnit;
    }

    public String getTypesEvaluationItems() {
        return typesEvaluationItems;
    }

    public void setTypesEvaluationItems(String typesEvaluationItems) {
        this.typesEvaluationItems = typesEvaluationItems;
    }

    public String getProgramingLanguage() {
        return programingLanguage;
    }

    public void setProgramingLanguage(String programingLanguage) {
        this.programingLanguage = programingLanguage;
    }

    public String getOperatingEnvironment() {
        return operatingEnvironment;
    }

    public void setOperatingEnvironment(String operatingEnvironment) {
        this.operatingEnvironment = operatingEnvironment;
    }

    public String getStatus() {
        try {
            return getStatusStrByInt(status);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return  status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Long getDataprivacylevel() {
        return dataprivacylevel;
    }

    public void setDataprivacylevel(Long dataprivacylevel) {
        this.dataprivacylevel = dataprivacylevel;
    }

    @Override
    public String getFilldept() {
        return filldept;
    }

    @Override
    public void setFilldept(String filldept) {
        this.filldept = filldept;
    }
}
